Tags make use of the hierarchical structure of outline trees. If a heading has a certain tag, all subheadings will inherit the tag as well. For example, in the list
* Meeting with the French group :work:
** Summary by Frank :boss:notes:
*** TODO Prepare slides for him :action:
the final heading will have the tags ‘:work:’, ‘:boss:’, ‘:notes:’, and ‘:action:’ even though the final heading is not explicitly marked with those tags. You can also set tags that all entries in a file should inherit just as if these tags were defined in a hypothetical level zero that surrounds the entire file. Use a line like this1:
#+FILETAGS: :Peter:Boss:Secret:
To
limit tag inheritance to specific tags, or to turn it off
entirely, use the variables org-use-tag-inheritance
and org-tags-exclude-from-inheritance.
When
a headline matches during a tags search while tag inheritance is
turned on, all the sublevels in the same tree will (for a simple
match form) match as well2. The list of matches may then
become very long. If you only want to see the first tags match in
a subtree, configure the variable
org-tags-match-list-sublevels (not recommended).
[1] As with all these in-buffer settings, pressing C-c C-c activates any changes in the line.
[2] This is only true if the search does not involve more complex tests including properties (see Property searches).